﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace iPhoneTrackerWin.Data
{
    /// <summary>
    /// Abstrakte Klasse die Tabellenname und Singleton Erzeugung ermöglicht
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public abstract class AbstractSingletonDBManager<T> : AbstractDataManager where T : new()
    {
        /// <summary>
        /// Liefert den Tabellennamen, auf dem gearbeitet wird
        /// Muss von der Unterklasse implementiert werden
        /// </summary>
        /// <returns></returns>
        protected String TableName;

        /// <summary>
        /// Singleton Implementation of Manager
        /// TODO: leider müssen die unterklassen nen public Konstruktor haben. Vielleicht ist das auch irgendwie ohne das möglich
        /// </summary>
        protected static T singleton = new T();

        public static T Instance
        {
            get { return singleton; }
        }

    }
}
